Implementations of the claimed invention generally may relate to data compression, and in particular to compressing instructions in programs (or code) prior to execution of the programs.
Many processing systems execute instructions. The ability to generate, store, and/or access instructions that make up programs is thus desirable. In particular, it may be generally desirable to reduce program/code size for savings in storage and/or bandwidth. Some techniques have been proposed to compress data that is stored on cache (e.g., L2) at runtime. Compressing at runtime, however, may introduce hardware complexity as well as extra latencies for making policy decisions on whether data needs to be compressed.
Another technique that has been proposed is echo instruction, which may reduce program/code size by replacing common/similar instruction sequence with echo instructions. This technique, however, focuses on instruction-level information in searching for common/similar instruction sequence, and thus ignores any useful information within instructions.
Such schemes to reduce program/code size, however, may be computationally intensive and/or may result in less than optimal compression for a particular program.